home *** CD-ROM | disk | FTP | other *** search
/ The Programmer Disk / The Programmer Disk (Microforum).iso / xpro / qb2 / pro15 / p-demo1.bas < prev    next >
BASIC Source File  |  1990-08-20  |  3KB  |  105 lines

  1.  '******************************************************************************
  2.  '* P-DEMO1 - Palette demo.                                                    *
  3.  '*                                                                            *
  4.  '* Written for GRAFIX by:  Joseph A. Albrecht                                 *
  5.  '*                                                                            *
  6.  '* Press F1 to increase screen change speed                                   *
  7.  '* Press F10 to toggle between 320 and 640 graphic modes                      *
  8.  '* Press ESC to exit program                                                  *
  9.  '******************************************************************************
  10.  '$INCLUDE: 'GRAFQBS.INC' 
  11.  'The above line is for QuickBASIC.
  12.  
  13.  ''$INCLUDE "GRAFTBS.INC"
  14.  'The above line is for TURBO BASIC. Remove the  ''  to compile the program.
  15.  
  16.  ''$INCLUDE "GRAFPBS.INC"
  17.  'The above line is for PowerBASIC. Remove the  ''  to compile the program.
  18.  
  19.  DIM Shape(1282), H0(15), H1(15), H2(15), H3(15), H4(15)
  20.  
  21.  FOR N = 0 TO 15
  22.    READ H0(N)
  23.  NEXT N
  24.  FOR N = 0 TO 15
  25.    READ H1(N)
  26.  NEXT N
  27.  FOR N = 0 TO 15
  28.    READ H2(N)
  29.  NEXT N
  30.  FOR N = 0 TO 15
  31.    READ H3(N)
  32.  NEXT N
  33.  FOR N = 0 TO 15
  34.    READ H4(N)
  35.  NEXT N
  36.  
  37.  Graphics = 320
  38.  Distance = 256
  39.  DEF SEG = VARSEG(Shape(0))
  40.  A = VARPTR(Shape(0))
  41.  BLOAD "P-DEMO1.BIN", A
  42.  DEF SEG
  43.  CALL GetTandy11(Tandy11%)
  44.  CALL MediumGraphics
  45.  
  46. Again:
  47.  FOR X = 0 TO Distance STEP 64
  48.    FOR Y = 4 TO 132 STEP 64
  49.      CALL ExtPut(X, Y, Shape(0), PutXor)
  50.    NEXT Y
  51.  NEXT X
  52.  
  53.  PauseVal = 22
  54.  S = 4
  55.  P = PauseVal
  56.  
  57.  DO
  58.    CALL PaletteUsing(H0(0))
  59.    GOSUB DelayLoop
  60.    CALL PaletteUsing(H1(0))
  61.    GOSUB DelayLoop
  62.    CALL PaletteUsing(H2(0))
  63.    GOSUB DelayLoop
  64.    CALL PaletteUsing(H3(0))
  65.    GOSUB DelayLoop
  66.    CALL PaletteUsing(H4(0))
  67.    GOSUB DelayLoop
  68.  LOOP
  69.  
  70. DelayLoop:
  71.  CALL Pause(P)
  72.  K$ = INKEY$
  73.  K$ = RIGHT$(K$, 1)
  74.  IF K$ = CHR$(27) THEN
  75.    CALL ExitGraphics
  76.    END
  77.  END IF
  78.  IF K$ = CHR$(59) THEN GOSUB ScreenSpeed
  79.  IF K$ = CHR$(68) AND Tandy11% = Tandy11.True% THEN
  80.    IF Graphics = 320 THEN
  81.      Graphics = 640
  82.      Distance = 576
  83.      CALL HighGraphics
  84.      RETURN Again
  85.    ELSE
  86.      Graphics = 320
  87.      Distance = 256
  88.      CALL MediumGraphics
  89.      RETURN Again
  90.    END IF
  91.  END IF
  92.  RETURN
  93.  
  94. ScreenSpeed:
  95.  P = P - S
  96.  IF P < 0 THEN P = PauseVal
  97.  RETURN
  98.  
  99.  DATA 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  100.  DATA 9,1,3,3,1,3,3,1,3,3,9,9,8,9,0,15
  101.  DATA 12,0,0,0,15,15,15,15,15,15,4,12,12,12,0,15
  102.  DATA 10,7,7,8,7,7,8,7,7,8,10,10,10,2,14,6
  103.  DATA 11,14,14,14,14,14,14,6,6,6,11,3,11,11,4,1
  104.  
  105.